/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package feuerwehr;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author gundlape
 */
public class Alarmierung {
    public Alarmierung(int pk, String bezeichnung, String status) {
        this.pk = pk;
        this.bezeichnung = bezeichnung;
        this.status = status;
    }

    /**
     * Liste aller möglichen Alarmierungen erstellen
     * @return Array mit allen Alarmierungen
     */
    public static ArrayList <Alarmierung> getAlarmierung() {
        ArrayList <Alarmierung> al = new ArrayList();
        try {
            PreparedStatement ps = Feuerwehr.getConnection().prepareStatement("select pk, bezeichnung from t_alarmierung order by bezeichnung");
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                Alarmierung a = new Alarmierung(rs.getInt("pk"), rs.getString("bezeichnung"), "N");
                al.add(a);
            }
            rs.close();
            ps.close();            
        } catch (SQLException exc) {
            System.err.println("ERROR[Alarmierung]: " + exc.toString());
        }
        return al;
    }    

    /**
     * Die aktuellen Alarmierungen zurückgeben
     * @param iEinsatzPK Der aktuelle Einsatz-PK
     * @return Array mit allen aktuellen Alarmierungen
     */
    public static ArrayList <Alarmierung> getAktuelleAlarmierung(int iEinsatzPK) {
        ArrayList <Alarmierung> al = new ArrayList();
        try {
            PreparedStatement ps = Feuerwehr.getConnection().prepareStatement("select pk, bezeichnung from t_alarmierung where pk in (select fk_alarmierung from t_e_alarmierung where fk_einsatz = ?) order by bezeichnung");
            ps.setInt(1, iEinsatzPK);
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                Alarmierung a = new Alarmierung(rs.getInt("pk"), rs.getString("bezeichnung"), "J");
                al.add(a);
            }
            rs.close();
            ps.close();            
        } catch (SQLException exc) {
            System.err.println("ERROR[Alarmierung]: " + exc.toString());
        }
        return al;
    }    
    
    public String getStatus() {
        return status;
    }
    
    @Override
    public String toString() {
        return bezeichnung;
    }
    
    private final String status;
    private final String bezeichnung;
    private final int pk;    
}
